#!/bin/bash

# 完整修复所有分页逻辑问题的脚本

echo "开始完整修复分页逻辑..."

# 查找所有包含分页相关问题的 Java 文件
files=$(find fuint-application/src/main/java -name "*.java" -exec grep -l "page\.getRecords\|page\.getTotal\|pageHelper.*=" {} \;)

for file in $files; do
    echo "正在修复文件: $file"
    
    # 1. 替换 PaginationHelper.createPage 为 new Page
    sed -i 's/PaginationHelper\.createPage(/new Page<>(/g' "$file"
    
    # 2. 修复错误的 page.getRecords() 使用
    # 查找 pageResult = 的行，然后替换后续的 page.getRecords() 为 pageResult.getRecords()
    sed -i '/pageResult.*=.*selectPage/,/return.*convertToPaginationResponse/ {
        s/page\.getRecords()/pageResult.getRecords()/g
        s/page\.getTotal()/pageResult.getTotal()/g
        s/page\.getCurrent()/pageResult.getCurrent()/g
        s/page\.getSize()/pageResult.getSize()/g
        s/page\.getPages()/pageResult.getPages()/g
    }' "$file"
    
    # 3. 修复 convertToPaginationResponse 调用中的参数
    sed -i 's/paginationRequest\.getCurrentPage(), paginationRequest\.getPageSize(), page\.getTotal()/(int)pageResult.getCurrent(), (int)pageResult.getSize(), pageResult.getTotal()/g' "$file"
    
    # 4. 清理注释和无用的 pageHelper 变量
    sed -i '/Page.*pageHelper.*=.*\/\/.*需要手动处理分页逻辑/d' "$file"
    sed -i '/\/\/ TODO:.*需要添加.*Page.*page.*=.*PaginationHelper\.createPage/d' "$file"
    sed -i '/\/\/ TODO:.*然后执行.*Page.*pageResult.*=.*mapper\.selectPage/d' "$file"
    
    echo "已修复文件: $file"
done

echo "完整修复完成！"
echo "请手动检查以下文件，确保分页逻辑正确："
echo "1. 确保所有 selectPage 调用都使用了返回的 pageResult"
echo "2. 确保 convertToPaginationResponse 使用正确的分页参数"
echo "3. 清理了所有无用的注释和变量"
